From b961de25c4cf7cd47df69008c55e41ac4473027b Mon Sep 17 00:00:00 2001 From: torkleyy Date: Fri, 12 May 2017 15:44:15 +0200 Subject: [PATCH] Add tests for --exclude --- tests/bench.rs | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ tests/build.rs | 43 +++++++++++++++++++++++++++++++++++++++ tests/test.rs | 46 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) diff --git a/tests/bench.rs b/tests/bench.rs index e70625618..96b30aa1c 100644 --- a/tests/bench.rs +++ b/tests/bench.rs @@ -1011,6 +1011,61 @@ fn bench_all_workspace() { .with_stdout_contains("test bench_foo ... bench: [..]")); } +#[test] +fn bench_all_exclude() { + if !is_nightly() { return } + + let p = project("foo") + .file("Cargo.toml", r#" + [project] + name = "foo" + version = "0.1.0" + + [workspace] + members = ["bar", "baz"] + "#) + .file("src/main.rs", r#" + fn main() {} + "#) + .file("bar/Cargo.toml", r#" + [project] + name = "bar" + version = "0.1.0" + "#) + .file("bar/src/lib.rs", r#" + #![feature(test)] + + extern crate test; + + #[bench] + pub fn bar(b: &mut test::Bencher) { + b.iter(|| {}); + } + "#) + .file("baz/Cargo.toml", r#" + [project] + name = "baz" + version = "0.1.0" + "#) + .file("baz/src/lib.rs", r#" + #[test] + pub fn baz() { + break_the_build(); + } + "#); + + assert_that(p.cargo_process("bench") + .arg("--all") + .arg("--exclude") + .arg("baz"), + execs().with_status(0) + .with_stdout_contains("\ +running 1 test +test bar ... bench: 0 ns/iter (+/- 0) + +test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured")); +} + #[test] fn bench_all_virtual_manifest() { if !is_nightly() { return } diff --git a/tests/build.rs b/tests/build.rs index fc4d28983..20f0d4b37 100644 --- a/tests/build.rs +++ b/tests/build.rs @@ -2803,6 +2803,49 @@ fn build_all_workspace() { [..] Finished dev [unoptimized + debuginfo] target(s) in [..]\n")); } +#[test] +fn build_all_exclude() { + let p = project("foo") + .file("Cargo.toml", r#" + [project] + name = "foo" + version = "0.1.0" + + [workspace] + members = ["bar", "baz"] + "#) + .file("src/main.rs", r#" + fn main() {} + "#) + .file("bar/Cargo.toml", r#" + [project] + name = "bar" + version = "0.1.0" + "#) + .file("bar/src/lib.rs", r#" + pub fn bar() {} + "#) + .file("baz/Cargo.toml", r#" + [project] + name = "baz" + version = "0.1.0" + "#) + .file("baz/src/lib.rs", r#" + pub fn baz() { + break_the_build(); + } + "#); + + assert_that(p.cargo_process("build") + .arg("--all") + .arg("--exclude") + .arg("baz"), + execs().with_status(0) + .with_stderr("[..] Compiling bar v0.1.0 ([..])\n\ + [..] Compiling foo v0.1.0 ([..])\n\ + [..] Finished dev [unoptimized + debuginfo] target(s) in [..]\n")); +} + #[test] fn build_all_workspace_implicit_examples() { let p = project("foo") diff --git a/tests/test.rs b/tests/test.rs index 473e63472..07edf1952 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -2377,6 +2377,52 @@ fn test_all_workspace() { .with_stdout_contains("test bar_test ... ok")); } +#[test] +fn test_all_exclude() { + let p = project("foo") + .file("Cargo.toml", r#" + [project] + name = "foo" + version = "0.1.0" + + [workspace] + members = ["bar", "baz"] + "#) + .file("src/main.rs", r#" + fn main() {} + "#) + .file("bar/Cargo.toml", r#" + [project] + name = "bar" + version = "0.1.0" + "#) + .file("bar/src/lib.rs", r#" + #[test] + pub fn bar() {} + "#) + .file("baz/Cargo.toml", r#" + [project] + name = "baz" + version = "0.1.0" + "#) + .file("baz/src/lib.rs", r#" + #[test] + pub fn baz() { + assert!(false); + } + "#); + + assert_that(p.cargo_process("test") + .arg("--all") + .arg("--exclude") + .arg("baz"), + execs().with_status(0) + .with_stdout_contains("running 1 test +test bar ... ok + +test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured")); +} + #[test] fn test_all_virtual_manifest() { let p = project("workspace") -- 2.30.2